import { GlobalRoot } from '../global/GlobalRoot';
import { AudioManager } from '../managers/AudioManager';

/**
 * AudioManager 功能测试用例集合
 */
export class AudioManagerTest {
    static runAll() {
        this.testPlayEffect();
        this.testPlayMusic();
        this.testStopAll();
        this.testSetVolume();
    }
    /**
     * 测试音效加载与播放
     * 预期：能听到音效播放，控制台输出音效对象
     */
    static testPlayEffect() {
        // 假设有 test/audio/click.mp3
        AudioManager.getInstance().playSound('click', false, 1.0);
        console.log('[测试] 播放音效 click');
        GlobalRoot.instance.UiManager.showTips("[测试] 播放音效 click")

    }
    /**
     * 测试背景音乐切换
     * 预期：能听到背景音乐切换，控制台输出音乐对象
     */
    static testPlayMusic() {
        // 假设有 test/audio/bgmusic.mp3
        AudioManager.getInstance().playMusic('gamewin', true, false);
        console.log('[测试] 播放背景音乐 bgmusic');
        GlobalRoot.instance.UiManager.showTips("[测试] 播放背景音乐 bgmusic")

    }
    /**
     * 测试停止所有音效
     * 预期：所有音效立即停止
     */
    static testStopAll() {
        AudioManager.getInstance().stopAllEffects();
        console.log('[测试] 停止所有音效');
        GlobalRoot.instance.UiManager.showTips("[测试] 停止所有音效")

    }
    /**
     * 测试音量调节
     * 预期：音效和音乐音量变化明显
     */
    static testSetVolume() {
        AudioManager.getInstance().setEffectVolume(0.2);
        AudioManager.getInstance().setMusicVolume(0.2);
        console.log('[测试] 设置音效和音乐音量为0.2');
        GlobalRoot.instance.UiManager.showTips("[测试] 设置音效和音乐音量为0.2")

        setTimeout(() => {
            AudioManager.getInstance().setEffectVolume(1);
            AudioManager.getInstance().setMusicVolume(1);
            console.log('[测试] 恢复音效和音乐音量为1');
            GlobalRoot.instance.UiManager.showTips("[测试] 恢复音效和音乐音量为1")

        }, 3000);
    }
} 